package com.ruoyi.xag.ysty.service;



import com.ruoyi.xag.ysty.domain.BusinessAndDeviceId;
import com.ruoyi.xag.ysty.domain.YSTYDeviceInfo;

import java.io.IOException;
import java.text.ParseException;
import java.util.List;

/**
 * @author LiSuxuan
 * @date 2021年 06月 23日 19:24
 * 设备接口
 */
public interface YSTYDeviceService {

    /**
     * 查询用户设备列表
     *
     * @return 列表数据
     * @throws IOException
     */

    public String selectDeviceInfos(String business);
    /**
     *从云上田野平台获取设备信息并插入数据库
     * @return
     */
    public int insertDeviceInfoFromYSTY(String business) throws ParseException;

    /**
     * 获取指定设备的所有属性列表
     * @param businessAndDeviceId
     * @return
     */
    public String getDeviceElement(BusinessAndDeviceId businessAndDeviceId);


    /**
     * 获取指定设备的实时数据
     * @param businessAndDeviceId
     * @return
     */
    public String getDeviceData(BusinessAndDeviceId businessAndDeviceId);

    /**
     * 获取制定设备上传数据的历史
     * @param deviceId
     * @param startTime
     * @param endTime
     * @param elementSigns
     * @return
     */
    public String getDeviceDataHistory(String deviceId,Long startTime,Long endTime,String elementSigns);

    /**
     * 拉取指定设备土壤设备的最近一条数据
     * @param businessAndDeviceId
     * @return
     * @throws IOException
     */
    int insertSoilDataPointLast(BusinessAndDeviceId businessAndDeviceId) throws IOException, ParseException;

    /**
     * 拉取指定设备气象站设备的最近一条数据
     * @param businessAndDeviceId
     * @return
     * @throws IOException
     * @throws ParseException
     */
    int insertWeatherDataPointLast(BusinessAndDeviceId businessAndDeviceId) throws  ParseException;

    /**
     * 获取云上田野的设备列表
     * @return
     */
    List<YSTYDeviceInfo> selectAllYSTYDevice();

    YSTYDeviceInfo selectYSTYDevice(String deviceId);

}
